use crate::ApiError;
use axum::extract::FromRequest;

/// 通过[axum::extract::Json]提取器实现自己的提取器
///
/// 可以返回自定义的数据结构和状态码
#[derive(FromRequest)]
#[from_request(via(axum::extract::Json), rejection(ApiError))]
pub struct Json<T>(pub T);

/// 数据校验[Valid]必须实现[HasValidate]trait

/// 简化[Valid<Json<T>>]的提取器
#[derive(Debug)]
pub struct ValidJson<T>(pub T);